package com.mengxj.classes;

import com.common.collection.Classes;
import com.common.collection.Student;

import java.util.Comparator;
import java.util.List;

/**
 * java.util.Comparator  负责自定义排序
 *      函数式接口
 *      里面唯一的方法是compaare，方法声明如下：
 *      int compare(T o1, T o2)
 *      其中，T是要比较对象的类型
 *
 *      此方法返回int值，我们不需要关心返回的具体是什么，只需要知道返回的是
 *      大于0，小于0还是等于0.
 *
 *      当参数是o1和o2时，返回如果大于0，则是正序，其余类比。
 *
 *      此接口会将认为大于0的向后移动
 *          compare方法结果大于0，它就认为大于0
 *
 *
 *
 *      shishi
 *uthor mengxj
 */
public class SortUtil {

    public static void main(String[] args) {
        new SortUtil().sortByAge();
    }

    void sortByAge(){
        List<Student> students = new Classes().students();
        Comparator<Student> comparator = new Comparator<Student>() {
            @Override
            public int compare(Student o2, Student o1) {
                return o1.getAge() - o2.getAge();
            }
        };
        students.sort(comparator);
        for (Student s: students) {
            System.out.println(s);
        }
    }
}
